// 这是一个利用当前时间作为参数来创建新文件的应用
// 新文件的格式为 File+时+分+秒
// 应用代码首先使用time系列函数获得当前的时、分、秒
// 然后通过组合获得对应的字符串，传递给Open函数创建文件
// 最后在文件中写入一个含有时间参数的字符串

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>


int main(void){
	time_t timetemp;	// 定义一个时间结构体变量
	struct tm *p;		// 定义时间结构体指针
	//int i;
	char timebuf[7];	// 用来存储时间信息，需要加'\0'
	char writetimebuf[7];	// 将该信息写入文件中
	char filenamebuf[10]="File";	// 用来记录文件名
	char writebuf[50]="This is a test! the time is:";
	
	// 换行符
	char enterbuf[3] = "\r\n"; 
	
	int fd;
	int temp;
	
	time(&timetemp);	// 获得时间参数

	printf("当前的时间为：%s",asctime(gmtime(&timetemp)));

	// 将时间参数转换为真实时间
	p = localtime(&timetemp);
	

	printf("当前时间为：%d:%d:%d\n", p->tm_hour, p->tm_min, p->tm_sec);

	// 将时间写入到缓冲器中
	sprintf(timebuf, "%02d%02d%02d", p->tm_hour, p->tm_min, p->tm_sec);

	// 打印当前时间，查看是否和上面相同
	printf("step 1 timebuf is %s\n", timebuf);

	// 复制字符串
	strcpy(writetimebuf, timebuf);
	
	// 打印要写入的时信息
	printf("step 2 writetimebuf is %s\n", writetimebuf);

	// 将时间信息追加到File后
	strcat(filenamebuf,timebuf);

	printf("step 3 timebuf is %s\n", timebuf);
	printf("filenamebuf is %s\n", filenamebuf);

	// 创建文件
	fd = open(filenamebuf, O_RDWR | O_CREAT, S_IRWXU);
	//printf("The writebuf is %s:\n", writebuf);

	// 连接两个字符串
	strcat(writebuf, "This is a test! the time is:");
	strcat(writebuf,writetimebuf);


	printf("The writebuf is %s:\n", writebuf);

	// 回车换行
	strcat(writebuf, enterbuf);

	temp = write(fd, writebuf, strlen(writebuf));

	temp = close(fd);

	return 0;

}


